package gui_demo;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/*
    案例2：
        聊天室
*/

public class ChatRoom {
    public static void main(String[] args) {
        JFrame jf = new JFrame();// 创建窗口对象
        jf.setSize(400, 300);// 设置宽高（单位是px像素）
        // 基本设置
        jf.setTitle("聊天室");// 1. 设置标题
        jf.setLocationRelativeTo(null);// 2.居中显示
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 3.关闭窗口时，退出程序 JFrame.EXIT_ON_CLOSE / 3
        jf.setAlwaysOnTop(true);// 4.置顶
        jf.setLayout(null);// 取消页面的默认布局

        // 文本域对象
        JTextArea textArea = new JTextArea();
        textArea.setBounds(10, 10, 360, 200);
        jf.add(textArea);
        // 文本框
        JTextField text = new JTextField();
        text.setBounds(10, 230, 180, 20);
        jf.add(text);
        // 发送按钮
        JButton send = new JButton("发送");
        send.setBounds(200, 230, 70, 20);
        jf.add(send);
        // 清空聊天信息
        JButton clear = new JButton("清空聊天");
        clear.setBounds(280, 230, 100, 20);
        jf.add(clear);

        // 发送按钮绑定事件
        send.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 获取文本框的内容，去除首尾空格
                String message = text.getText().trim();
                // 对message进行判断，如果为空，弹出提示，结束方法
                if (message.equals("")) { //1.equals("") 2.length() == 0 3.isEmpty() 都是判断为空的方法
                    JOptionPane.showMessageDialog(jf,"不能发送空的内容！");
                    // 清空文本框
                    text.setText("");
                    return;
                }
                // 拼接到文本域，加一个换行操作
                textArea.append(message + "\n");
                // 清空文本框
                text.setText("");
            }
        });

        // 清空聊天按钮绑定事件
        clear.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 清空文本域
                text.setText("");
            }
        });
        // 显示窗口，一般放在最后
        jf.setVisible(true);
    }
}
